package com.lmc.chatroom.utils;

import org.springframework.util.DigestUtils;

import java.util.UUID;

public class SecurityUtil {

//    加密
    public static String encryptPassword(String password) {
//        生成盐值（uuid）
        String salt = UUID.randomUUID().toString();
//        用md5算法对密码和盐值进行加密生成密文
        String md5DigestAsHex = DigestUtils.md5DigestAsHex((salt + password).getBytes());
//        返回盐值+密文的字符串
        return salt+md5DigestAsHex;
    }

    /**
     *
     * @param password    明文密码即用户输入的密码
     * @param encryptedPassword 数据库中存储的加密后的密文
     * @return
     */
    public static boolean checkPassword(String password, String encryptedPassword) {
        //1.先从密文中获取到盐值
        String salt = encryptedPassword.substring(0, 36);
        //2.对用户输入的密码进行加密
        String md5DigestAsHex = salt+DigestUtils.md5DigestAsHex((salt + password).getBytes());
        //3.返回比较后的结果
        return md5DigestAsHex.equals(encryptedPassword);
    }

}
